﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using TwoGesture.Resources;

namespace TwoGesture
{
    class ControlExamen
    {
        private static ControlExamen ObjCtrExamen = null;
        private Conexion ObjConexion = Conexion.InsConexion();
        private String DatoIdUsuario;
        private PreguntasCuestionario[] datoidpreguntas;
        private int contador=0;

        public FormUsuario FormUsuario
        {
            get
            {
                throw new System.NotImplementedException();
            }
            set
            {
            }
        }
        
        //metodo para traer una pregunta de la BD 
        public void ObtenerPregunta(String id)
        {
            SqlConnection ConexionSQL = ObjConexion.Enlace();
            ObjConexion.Enlace();
            ConexionSQL.Close();
            ConexionSQL.Open();
            SqlCommand sql = new SqlCommand("select top 1 idcuestionario from cuestpac where activo=1 and idpaciente="+id+" order by idcuestionario asc", ConexionSQL);
            int DatoidCuestionario = sql.ExecuteScalar().GetHashCode();
            sql = new SqlCommand("select idpregunta from relacioncuestionario where idcuestionario=" + DatoidCuestionario, ConexionSQL);
            SqlDataReader dr = sql.ExecuteReader();
            int[] idpreguntas = new int[20];
            int i=0;
            while(dr.Read()){
                idpreguntas[i] = dr.GetInt32(0);
                i = i + 1;
            }
            dr.Close();
            PreguntasCuestionario[] cuest=new PreguntasCuestionario[20];
            int j=0;
            while(j<20)
            {
                PreguntasCuestionario obj= new PreguntasCuestionario();
                sql = new SqlCommand("select * from pregunta pregunta where IdPregunta=" + idpreguntas[j], ConexionSQL);
                dr = sql.ExecuteReader();
                dr.Read();
                obj.idpregunta=dr.GetInt32(0);
                obj.descpregunta=dr.GetString(1);
                dr.Close();
                sql = new SqlCommand("select * from respuesta pregunta where IdPregunta=" + idpreguntas[j], ConexionSQL);
                dr=sql.ExecuteReader();
                dr.Read();
                obj.idrespuesta1=dr.GetInt32(0);
                obj.descrespuesta1=dr.GetString(1);
                obj.valor1 = dr.GetInt32(2);
                dr.Read();
                obj.idrespuesta2=dr.GetInt32(0);
                obj.decrespuesta2=dr.GetString(1);
                obj.valor2 = dr.GetInt32(2);
                dr.Read();
                obj.idrespuesta3=dr.GetInt32(0);
                obj.decrespuesta3=dr.GetString(1);
                obj.valor3 = dr.GetInt32(2);
                dr.Read();
                obj.idrespuesta4=dr.GetInt32(0);
                obj.decrespuesta4=dr.GetString(1);
                obj.valor4 = dr.GetInt32(2);
                cuest[j] =obj ;

                int VMax = cuest[j].valor1;
                cuest[j].idcorracta=cuest[j].idrespuesta1;
               
                    if (VMax < cuest[j].valor2)
                    {
                        VMax = cuest[j].valor2;
                        cuest[j].idcorracta = cuest[j].idrespuesta2; ;
                    }
                    if (VMax < cuest[j].valor3)
                    {
                        VMax = cuest[j].valor3;
                        cuest[j].idcorracta = cuest[j].idrespuesta3;
                    }
                    if (VMax < cuest[j].valor4)
                    {
                        VMax = cuest[j].valor4;
                        cuest[j].idcorracta = cuest[j].idrespuesta4;
                    }
                    
                               
                j = j + 1;
                dr.Close();


            }
            datoidpreguntas = cuest;
            
            ConexionSQL.Close();
        }

        public PreguntasCuestionario siguientePregunta()
        {          
            PreguntasCuestionario obj= new PreguntasCuestionario();
            if (contador < 20)
            {
                obj=datoidpreguntas[contador];
                contador = contador + 1;
            }
            return obj;
        }


        //singleton
        public static ControlExamen InsCtrExamen()
        {

            if (ObjCtrExamen== null)
            {
                ObjCtrExamen = new ControlExamen();
            }
            return ObjCtrExamen;
        }

        public void Datosusuario(string _idusuari)
        {
            DatoIdUsuario = _idusuari;
        }
        public String IdUsuario()
        {
            return DatoIdUsuario;
        }
    }
}
